package dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import model.Benutzer;
import model.benutzerListe;
import db.DbConnection;

public class BenutzerDAO {

	final String selectBenutzer = "SELECT * FROM Benutzer";

	public benutzerListe getAllBenutzer() throws SQLException {
		Connection con = DbConnection.getInstance();
		Statement s = con.createStatement();
		benutzerListe benutzer = new benutzerListe();

		ResultSet rs = s.executeQuery(this.selectBenutzer);

		while (rs.next()) {
			int _id = rs.getInt("ID");
			String _Vorname = rs.getString("Vorname");
			String _Nachname = rs.getString("Nachname");
			String _Geburtstag = rs.getString("Geburtstag");
			String _Email = rs.getString("Email");
			String _Benutzername = rs.getString("Benutzername");
			String _Passwort = rs.getString("Passwort");

			benutzer.add(new Benutzer(_id, _Vorname, _Nachname, _Geburtstag, _Email, _Benutzername, _Passwort));
		}

		return benutzer;
	}

	public Benutzer getBenutzerByName(String Benutzername) throws SQLException {
		Connection con = DbConnection.getInstance();
		Statement s = con.createStatement();
		ResultSet rs = s.executeQuery(this.selectBenutzer + " WHERE BENUTZERNAME = '" + Benutzername + "'");

		while (rs.next()) {
			String Bn = rs.getString("BENUTZERNAME");
			int _id = rs.getInt("ID");
			String _Vorname = rs.getString("Vorname");
			String _Nachname = rs.getString("Nachname");
			String _Geburtstag = rs.getString("Geburtstag");
			String _Email = rs.getString("Email");
			String _Benutzername = rs.getString("Benutzername");
			String _Passwort = rs.getString("Passwort");

			return new Benutzer(_id, _Vorname, _Nachname, _Geburtstag, _Email, _Benutzername, _Passwort);
		}

		return null;
	}

	public boolean saveBenutzer(Benutzer b) throws SQLException {
		Connection con = DbConnection.getInstance();
		Statement s = con.createStatement();

		if (b.get_id() == 0) {
			final String InsertBenutzer = "Insert into Benutzer(VORNAME,NACHNAME,GEBURTSTAG,EMAIL,BENUTZERNAME,PASSWORT)" + "VALUES" + "('" + b.get_Vorname()
					+ "','" + b.get_Nachname() + "','" + b.get_Geburtstag() + "','" + b.get_Email() + "','" + b.get_Benutzername() + "','" + b.get_Passwort()
					+ "')";

			if (s.executeUpdate(InsertBenutzer) > 0) {
				return true;
			}
			return false;
		} else {
			final String UpdateBenutzer = String.format(
					"UPDATE Benutzer SET VORNAME = %s, NACHNAME = %s, GEBURTSTAG = %s, EMAIL = %s, BENUTZERNAME = %s, PASSWORT = % WHERE ID = %",
					b.get_Vorname(), b.get_Nachname(), b.get_Geburtstag(), b.get_Email(), b.get_Benutzername(), b.get_Passwort(), b.get_id());
			return s.executeUpdate(UpdateBenutzer) > 0;
		}

	}
}